package br.com.medmark.bean;

import java.io.IOException;
import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import br.com.medmark.model.hibernate.Clinica;
import br.com.medmark.model.hibernate.Consulta;
import br.medmark.util.Constantes;
import br.medmark.util.Funcoes;
import br.medmark.util.Persistencia;


@ManagedBean(name = "beanHistoricoConsultas")
@ViewScoped
public class BeanHistoricoConsultas implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 7472293078090491048L;
	private List<Consulta> consultas;
	private Consulta consulta;
	
	
	@PostConstruct
	public void init(){
		FacesContext context = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
		
		Clinica clinica = (Clinica) session.getAttribute("clinica");
	
		if (clinica == null) {
			try {
				FacesContext.getCurrentInstance().getExternalContext().redirect("login/login.xhtml");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else{
		
			consultas = Persistencia.getInstance().getConsultasPorStatus(clinica.getCodigo(), Constantes.STATUS_CONSULTA_REALIZADA);
		}
	}

	public String recuperaData(Consulta consulta){
		
		String data = null; 
		if (consulta.getSolicitacao().getHorario().getTipoHorario() == Constantes.TIPO_HORARIO_ORDEM_CHEGADA) {
			data = Funcoes.dataString(consulta.getSolicitacao().getHorario().getHoraInicial());
		}else{
			data = Funcoes.dataString(consulta.getSolicitacao().getHorario().getDataConsulta());
		}
		return data;
	}
	
	public String recuperaHora(Consulta consulta){
		
		String hora = null; 
		hora = Funcoes.horarioString(consulta.getSolicitacao().getHorario());
		
		return hora;
	}
	
	public void removerConsulta(Consulta consulta){
		consultas.remove(consulta);
		Persistencia.getInstance().excluir(consulta.getCodigo(), Consulta.class);
		
	}


	public List<Consulta> getConsultas() {
		return consultas;
	}


	public void setConsultas(List<Consulta> consultas) {
		this.consultas = consultas;
	}

	public Consulta getConsulta() {
		return consulta;
	}

	public void setConsulta(Consulta consulta) {
		this.consulta = consulta;
	}

}
